Interface management systems and methods

ABSTRACT

Example systems and methods of managing a user interface are described. In one implementation, a method displays a user interface for an application, the application has a plurality of fields is described. A user selection of a field of the plurality of fields is detected via a touch-sensitive screen. A user input indicating a new position of the selected field is received. The other fields affected by the new position are identified and repositioned based on the new position of the selected field. The plurality of fields has a set of data associated with them. A user activation of a field editing operation is detected. An editing command from the user is received via a touch-sensitive screen. The editing command is implemented with respect to at least one field, and the user interface is updated. The updated user interface is displayed with the set of data.

FIELD

The present disclosure relates generally to a user interface and, morespecifically, to management of the user interface.

BACKGROUND

Computing systems and application programs display various types ofcontent to users via a display device. The content may be displayed as afield with a set of data associated with it. In some situations, a usermay want to personalize and configure how the content and fields aredisplayed. In this situation, it is desirable to provide an easy andintuitive approach to configuring content and fields for display.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is illustrated by way of example, and not aslimitation, in the accompanying figures.

FIG. 1 is a block diagram of an example system capable of employing thesystems and methods described herein.

FIGS. 2A and 2B are flow diagrams of an example method of configuring auser interface of an application by rearranging fields.

FIGS. 3A and 3B are flow diagrams of an example method of configuring auser interface of an application by adding or removing fields.

FIG. 4 illustrates an example user interface for configuring a userinterface of an application.

FIG. 5 illustrates another example user interface for configuring a userinterface of an application.

FIG. 6 illustrates another example user interface for configuring a userinterface of an application.

FIG. 7 depicts a block diagram of a machine in the example form of aprocessing system within which may be executed a set of instructions forcausing the machine to perform any one or more of the methodologiesdiscussed herein.

DETAILED DESCRIPTION

The description that follows includes illustrative systems, methods,techniques, instruction sequences, and computing machine programproducts that embody illustrative embodiments. In the followingdescription, for purposes of explanation, numerous specific details areset forth in order to provide an understanding of various embodiments ofthe inventive subject matter. It will be evident, however, to thoseskilled in the art that embodiments of the inventive subject matter maybe practiced without these specific details. In general, well-knowninstruction instances, protocols, structures, and techniques have notbeen shown in detail.

At least some of the embodiments described herein provide systems andmethods for configuring a user interface on a display device. Theseembodiments discuss, by way of example, the management and configurationof a user interface far an application having multiple fields. Someembodiments describe rearranging fields in a user interface via atouch-sensitive screen and displaying data associated with the fields inthe rearranged positions. Other embodiments describe editing the userinterface via a touch-sensitive screen by adding or removing fields fromthe user interface. The ability to configure fields for an applicationvia a touch-sensitive screen is user-intuitive and allows the user topersonalize an application to display data to his or her preference.

FIG. 1 is a block diagram of an example system 100 capable of employingthe systems and methods described herein. In the example system of FIG.1, a client system 102 includes various modules such as a communicationmodule 104, a user interface manager 106, a data manager 108, a userinput device 110, a display generator 112, and a data storage 114.

The client system 102 includes any type of system capable of performingone or more functions described herein. For example, the client system102 may include a client computer, a desktop computer, a laptopcomputer, a tablet computer, a mobile device, a portable entertainmentdevice or any other machine capable of performing one or more of thefunctions and operations discussed herein. The client system 102includes, for example, machines and software to implement the describedinterface management systems and methods.

In some embodiments, a server may perform some of the functions andoperations described herein, while the client system 102 performs theother functions. In that case, the client system 102 communicates withthe server via a data communication network, such as the Internet, alocal area network (LAN), wide area network (WAN), and so forth. Inparticular implementations, the client system 102 may be accessed oroperated by a variety of users, such as an application developer, anetwork administrator or an end-user of an application. In otherimplementations, one or more functions performed by the client system102 may be handled automatically and without user intervention.

The client system 102 includes a communication module 104 capable ofcommunicating with a variety of different systems through a datacommunication network or other communication mechanism. For example, thecommunication module 104 may communicate with a server, other clientsystems, content sources, data storage devices, and the like. A userinterface manager 106 performs various functions related to managing,configuring, updating, and saving various user interfaces capable ofbeing rendered on the client system 102. For example, the user interfacemanager 106 manages interaction between the user and the client system102. This interaction may take place via a user input device 110. Theuser interface manager 106 also activates a personalization orconfiguration mode in which the user is to configure and personalize auser interface. Further, the user interface manager 106 updates the userinterface based on the user's edits and configurations, and then savesthe updated user interface as being associated with the user, atemplate, or a device. The user interface may be related to anapplication, and the application may have multiple fields that areconfigurable by a user.

The client system 102 further includes a data manager 108 and a userinput device 110. The data manager 108 performs various functionsrelated to accessing, organizing, presenting, and editing various typesof data. For example, the data manager 108 identifies and stores a dataset for presentation on a display device as discussed herein. Further,the data manager 108 modifies the data set based on, for example, userinstructions and various menu-selected actions. As used herein, a “dataset” includes any type of data, such as text data, numerical data,graphical data, documents, images, spreadsheets, application data, andthe like. A data set may also include any grouping or collection ofdata, such as different types of data grouped together in a single dataset. Additionally, the terms “data set” and “set of data” are usedinterchangeably herein.

The user input device 110 performs various functions related toreceiving input from a user and displaying a user interface on theclient system 102. The user input device 110 may include any devicecapable of receiving input and displaying interfaces on the clientsystem 102. For example, the user input device 110 is a touch-sensitivescreen capable of recognizing an input via a user's touch. The user mayuse his or her finger or use a touch screen stylus pen to provide inputto the client system 102 via the user input device 110.

The client system 102 further includes a display generator 112 and datastorage 114. The display generator 112 generates appropriate displayinformation to support the display of a user interface, the fields of anapplication, a data set associated with the fields, and cut figurationcommands. The data storage 114 manages and stores data associated withthe fields and the application.

FIGS. 2A and 2B illustrate a flow diagram of example methods forconfiguring a user interface of an application by rearranging the fieldsof the user interface. FIG. 4 illustrates an example user interfacescreen 400 according to some embodiments. FIG. 6 illustrates an exampleuser interface screen 600 according to some embodiments. FIGS. 2A, 2B,4, and 6 are described below in conjunction with each other to describeone or more embodiments of the interface management systems and methods.

FIG. 4 shows user interface screen 400. User interface screen 400displays a mode 402 at the top of the screen, for example, here the modeis a personalization mode. Even though the mode 402 is displayed at thetop of the screen, it is understood that the mode 402 may be displayedanywhere else on the screen. The user interface screen 400 includesmultiple fields, such as, for example, field 404 labeled as Field 1,field 406 labeled as Field 3, and field 408 labeled as Field 4. The userinterface screen 400 also includes an inactive portion 414.

FIG. 6 shows user interface screen 600. User interface screen 600displays a mode 602 at the top of the screen. For example, here the modeis a productive mode. Even though the mode 602 is displayed, at the topof the screen, it is understood that the mode 602 may be displayedanywhere else on the screen. User interface screen 600 includes multiplefields, such as, for example, field 604 labeled as Field 3, field 606,labeled as Field 2, field 608 labeled as Field 8, field 610 labeled asField 7, and field 612 labeled as Field 4.

FIG. 2A illustrates a flow diagram of an example method 200 forconfiguring a user interface of an application by rearranging the fieldsof the user interface. The method 200 starts off by displaying a userinterface for an application that has multiple fields at a block 202.The application may be a mobile application that runs on a mobile devicesuch as a smart phone, mobile phone, or a tablet. The application may bea mobile application provided by SAP AG of Walldorf, Germany thatrelates to business solutions such as managing processes, performinganalytics, managing data, managing projects, and other solutions thatSAP offers. The application has a plurality of fields. Each field hasdata associated with it. This data can include any type of data, such astext data, numerical data, graphical data, documents, images,spreadsheets, application data, and the like. The application also has auser interface associated with it, which is displayed on a clientdevice. The user interface comprises of the plurality of fieldsassociated with the application. The user interface may be displayed ona client device that has a touch-sensitive screen.

After displaying the user interface for the application, the method 200detects a user selection of a particular field at a block 204. The usercan select a field from the plurality of fields based on a configurationsetting of the application. The user may select the field on thetouch-sensitive screen by touching the field with their finger or bytouching the field with a stylus pen. The method may detect the userselection of a field based on the length of time the user touches thefield. For example, the user may have to touch the field for a fewseconds (instead of tapping the field) to indicate that they want toselect the field to personalize the user interface.

After detecting the selection of a field, the method 200 may activate apersonalization mode at a block 206. In some embodiments, the userinterface may display a ‘personalization’ button, which the user cantouch/select to activate the personalization mode. In other embodiments,the personalization mode may be activated upon detection of theselection of a field. The user interface may indicate that theapplication is in the personalization mode by displaying the mode nameas shown in FIG. 4 at mode 402. The application may have configurationsettings that allow the user to select a certain set of fields of theapplication, while the other fields are inactive and not selectable bythe user. The inactive fields may be ‘grayed out’ or ‘shaded’ toindicate to the user that they cannot select these fields as shown atinactive portion 414 of FIG. 4. Inactive portion 414 shows the portionof the screen comprising Field 10 and Field 11 as ‘shaded.’ This mayindicate to the user that they cannot configure inactive portion 414.The configuration settings of the application may be set by theapplication developer or application provider, such as SAP, or they maybe set by the user.

The method 200 may highlight the field selected by the user at a block208. In some embodiments, the selected field may be highlighted afterdetecting the user selection of the field at block 204. In otherembodiments, the selected field may be highlighted after activating thepersonalization mode at block 206. The selected field can be highlightedusing various coloring or shading techniques. For example, the selectedfield may have a different color than the other fields, or the selectedfield may be shaded as shown by field 406 of FIG. 4. The selected fieldmay have a thicker border to indicate that it is highlighted as shown byfield 408 of FIG. 4. Even though FIG. 4 shows field 406 as shaded andfield 408 with a thicker border, it is understood that only one of thetechniques, either shading or thicker border, may be used to highlight aselected field.

At a block 210, the method 200 receives a user input indicating a newposition for the selected field. The user input includes the userdragging the selected field from its original position to a new positionwithin the user interface. The user may drag the selected field by usingtheir finger or by using a stylus pen. The user can drag the selectedfield by touching the field, and moving the field while keeping theirfinger or stylus pen in contact with the touch-sensitive screen. Theuser can indicate the field's new position by releasing or dropping thefield at a desired new position by lifting their finger or stylus penfrom the touch-sensitive screen. The new position of the selected fieldcan be a position that the user deems appropriate for his needs, so thatthe data associated with that field is easily accessible to the user.For example, as illustrated by arrow 410 of FIG. 4, the user may dragfield 406 to the position of Field 2, indicating a new position of field406 as the original position of Field 2. As illustrated by arrow 412,the user may drag field 408 to a new position.

In an example embodiment, the user interface of the application maydisplay the fields in various columns and rows. The user can drag theselected field from one of these columns to another column or row.Similarly, the user can drag the selected field from one of these rowsto another column or row. The user can also drag the selected fieldwithin the same column and/or row. In alternative embodiments, the userinterface of the application may not display the fields in columns androws. In other embodiments, the user interface of the application maydisplay the fields as only columns or as only rows.

The user may not drag the selected field to the inactivate portion ofthe user interface. Such inactive portions may be grayed out to indicateto the user that he cannot move the selected field to the inactiveportion. An example embodiment is shown by inactive portion 414 of FIG.4. As discussed above, the configuration settings of the application maydetermine the portion of the application that is inactive. For example,an application may consist of two independent parts, and theconfiguration settings may indicate that the fields from one independentpart may not be moved to the other independent part. If the user selectsa field from the first independent part, then the second independentpart becomes inactive because the selected field cannot be moved to thispart of the application. Similarly, if the user selects a field in thesecond independent part, then the first independent part becomesinactive because the selected field cannot be moved to this part of theapplication. In another example, an application may consist of twoindependent parts, and the configuration settings for the applicationmay indicate that the second independent part cannot be configured bythe user. In this case, when the user selects a field from the secondindependent part, that is not configurable by the user, thepersonalization mode is not activated, thus not allowing the user tomove the fields of the second independent part.

In some embodiments, if the user drags the selected field to an inactiveportion, then the selected field may by grayed out or shaded to indicatethat the selected field cannot be moved to the inactive portion. If theuser drops the selected field in the inactive portion attempting to moveit there, then the selected field may return back to its originalposition within the user interface. In other embodiments, if the userattempts to move the selected field to the inactive portion, then theuser interface may display a warning or a notice. The warning or noticemay indicate via text and/or icons to the user that the selected fieldcannot be moved to that portion.

At a block 212, the method 200 checks whether the user is finishedrepositioning the selected field. If the user is not done repositioning,then the method continues to receive user input. If the user is donerepositioning the selected field, then the method 200 proceeds to ablock 216 shown in FIG. 2B.

FIG. 2B is a flow diagram of an example method 200 for configuring auser interface of an application by rearranging the fields of the userinterface. The method 200 determines the new position of the selectedfield at a block 214. For example, as illustrated by arrow 410, a usermay drag and drop field 406 at the new position. In this case, it isdetermined at block 214 that the new position is the original positionof Field 2 because the user dropped/released the field at that position.As discussed above, the user can drag a field by touching the field, andmoving the field while keeping their finger or stylus pen in contactwith the touch-sensitive screen. The user can drop or release a field bylifting his finger or stylus pen off the touch screen.

After determining the new position of the selected field, the method 200identifies the fields in the user interface that are affected by the newposition of the selected field at a block 206. One or more of the fieldsin the user interface may be affected by the new position of theselected field. For example, the new position may be the originalposition of another field or the new position may be between two fields.In this case, the fields may need to be moved or repositioned to makespace for the selected field. In another example, the new position ofthe selected field may be towards the end of the user interface. In thiscase, the other fields may be moved to fill up the empty space left bythe selected field. FIG. 4 shows an example where field 406 is moved bythe user according to arrow 410. The new position of field 406 is theoriginal position of Field 2. In this example, block 216 identifiesField 2 as being affected by the new position of field 406.

At a block 218 the method 200 repositions the other fields based on thenew position of the selected fields. The other fields are repositionedas needed. For example, the other fields may be moved within the userinterface to make space for the selected field. FIG. 4 shows an examplewhere the user selects field 406, labeled as Field 3, and moves itaccording to arrow 410, indicating a new position for field 406. FIG. 6shows the end result of this operation. Field 604, labeled as Field 3,is displayed above field 606, labeled as Field 2. Field 606 wasrepositioned to make space for field 604 based on the rearrangingoperation illustrated by arrow 410 in FIG. 4. In this example, field 606was repositioned below field 604, but it is understood that field 606may be moved anywhere else in the user interface. For example, field 606may be repositioned above field 604 or next to field 604. FIG. 4 showsanother example where the user selects field 408, labeled as Field 4,and moves it according to arrow 412, indicating a new position for field412. FIG. 6 shows the end result where field 612, labeled as Field 4, isrepositioned at the new position towards the end of the user interface.In this example, other fields were not moved to fill up the empty spaceleft by field 612. In other examples, other fields may be moved to fillup the empty space.

The method 200 updates the user interface, at a block 220, based on thenew position of the selected fields and the repositioning of the otherfields. The updating of the user interface includes displaying thefields in the personalization mode based on the updated positions. Forexample, block 220 may update the user interface according to FIG. 6when the user performs the actions illustrated in FIG. 4.

The updated user interface may be saved at a block 222. The userinterface may be saved as associated with the user that is currentlyusing the application. The application may determine the user bychecking the username or log-in information associated with theapplication. The user interface may also be saved as associated with atemplate. The user may have the option to save the updated userinterface as a template of their choice. For example, the user may workwith a business solution application, and may use the application tomaintain customer information and to maintain order information. In thiscase, the user would like access to different information depending onthe task they are performing. The user can configure a user interface sothat they have easy access to customer information, and save thisupdated user interface as a template for customer information, and canconfigure another user interface so they have easy access to orderinformation and save this updated user interface as a template for orderinformation. Depending on which information the user wants to work with,they can select from the various saved templates and access the updateduser interface. Thus, the user does not have to reconfigure the fields.

The user interface may also be saved as being associated with a device.For example, the user may save the user interface as one that isassociated with their mobile phone versus a tablet device. The screensfor a mobile phone and a tablet device may have different dimensions;therefore, the user may want to configure the fields so that informationis displayed to fit the different screen dimensions. Depending on whichdevice the user is working on, the updated user interface for thatdevice may be automatically displayed. In other embodiments, the usermay select the updated user interface for that device.

The method 200 exits the personalization mode at block 224. Upon exitingthe personalization mode, the user interface may be in productive modeas shown by mode 602 in FIG. 6. The personalization mode is a mode wherethe user can configure and personalize the user interface. Theproductive mode is a mode where the user can use the user interface andthe application. In some embodiments, the method 200 may save theupdated user interface at block 222 after exiting the personalizationmode at block 224.

At a block 226, the method 200 displays data associated with the fieldsbased on the updated user interface. Each of the plurality of fields hasdata associated with it. The data associated with the field is displayedin the new position of the field. When the user moves the selectedfield, the database associated with the data for the field is notaffected. The data is not copied or moved to another database or datasource. Only the display of the field and the display of the data areaffected. When the data associated with the field is updated by the useror the application, the updated data is displayed in the user interfaceat the new position of the field.

When the user accesses the application again, at a later time, themethod 200 retrieves the saved user interface at a block 228. Forexample, the user may personalize the user interface of the applicationon a mobile device, and then exit the application. The user then mayaccess the application at a later time. The method 200 retrieves thesaved user interface and displays that on the mobile device. The methodmay retrieve the saved user interface based on the user, a template or adevice. For example, the user interface saved as being associated withthe user may be retrieved based on the username used to log in to theapplication. If the user accesses the application on his mobile phonethen the user interface associated with the mobile phone may beretrieved. If the user accesses the application on a tablet then theuser interface associated with the tablet may be retrieved. If the useraccesses the application and specifies a template, then the userinterface associated with the template is retrieved.

FIGS. 3A and 3B illustrate a flow diagram of example methods forconfiguring a user interface of an application by adding and/or removingfields. FIGS. 5 and 6 illustrate example user interface screensaccording to some embodiments. FIGS. 3A, 3B, 5, and 6 are describedbelow in conjunction with each other to describe one or more embodimentsof the interface management systems and methods.

FIG. 5 illustrates user interface screen 500 including a mode 502 at thetop of the screen. For example, here the mode is the personalizationmode. Even though mode 502 is displayed at the top of the screen, it isunderstood that the mode 402 may be displayed anywhere else on thescreen. User interface screen 500 also includes multiple fields, suchas, for example, field 504 labeled as Field 1. User interface screen 500also includes a list 506 illustrating an available fields list, and asave button 512.

FIG. 3A is a flow diagram of an example method 300 for configuring auser interface of an application by adding and/or removing fields. Themethod 300 starts off at a block 302 by displaying a user interface foran application, where the application has multiple fields. As discussedabove, the application may be a mobile application that runs on a mobiledevice such as a smart phone, mobile phone, or a tablet. The applicationmay be a mobile application provided by SAP that relates to businesssolutions such as managing processes, performing analytics, managingdata, managing projects, and other solutions that SAP offers. Theapplication has a plurality of fields. Each field has data associatedwith it. This data can include any type of data, such as text data,numerical data, graphical data, documents, images, spreadsheets,application data, and the like. The application also has a userinterface associated with it, which is displayed on a client device. Theuser interface comprises of the plurality of fields associated with theapplication. The user interface may be displayed on a client device thathas a touch-sensitive screen.

The method 300 then displays an option to perform the field editingoperation, at a block 304. The option to perform a field editingoperation includes the option of adding a field and removing a field.The options may be displayed by displaying a list of available fields.For example, list 508 in FIG. 5 is labeled ‘available’ and showsmultiple fields that are available to the user. The user can add a fieldfrom the available fields by selecting a field from the list. List 508also includes a scroll bar which the user can scroll to display moreavailable fields. The user can drag a field from the list, and drop thefield at a desired position in the user interface. The user can remove aparticular field by dragging the field and dropping it in the availablefields list. Upon removing, the particular field appears in theavailable fields list, and is available for the user to add to the userinterface. In some embodiments, the option to perform the field editingoperation may be displayed as an icon or button. Upon selecting the iconor button, the available fields list may be displayed.

After displaying the option to perform a field editing operation, themethod 300 determines whether the user activates a field editingoperation, at a block 306. The user can activate the field editingoperation by selecting a field to add from the available fields list.The user can also activate the field editing operation by selecting afield to remove from the user interface. Selecting a field includes theuser touching the field on the touch-sensitive screen with his finger orwith a stylus pen. In some embodiments, the user may activate a fieldediting operation by selecting an icon or button. The user may selectthe icon or button by touching it using their finger or a stylus pen.Activating the field editing operation allows the user to edit thefields of the user interface. The user is able to add a field to theuser interface or remove a field from the user interface. If the useractivates the field editing operation then the method 300 continues onto a block 308. If the user does not activate a field editing operation,then the method may continue to display the option to perform a fieldediting operation at block 304.

After the user activates the field editing operation, the method 300 mayactivate a personalization mode at a block 308. In some embodiments, theuser interface may display a ‘personalization’ button, which the usercan touch/select to activate the personalization mode. The userinterface may indicate that the application is in the personalizationmode by displaying the mode name on the screen as illustrated by mode502 in FIG. 5. The personalization mode allows the user to personalizeand configure the user interface as desired.

At a block 310, the method 300 receives an editing command from theuser. The editing command may include adding a field to the userinterface or removing a field from the user interface. The user can adda field to the user interface by selecting a field from the availablefields list. The user may add a field from the available fields list bydragging a field from the list and dropping it at a desired position inthe user interface. For example, the user may drag Field 8 from list 506according to arrow 508 in FIG. 5. In this case, the new position ofField 8 is above Field 7. The user can remove or delete a field from theuser interface by selecting the field from the user interface, anddragging it and dropping it in the available fields list. For example,the user may drag field 504 from the user interface to the list 506according to arrow 510 in FIG. 5. The user performs the drag and dropactions using his finger or using a stylus pen. In other embodiments,the user interface may display a ‘trash’ icon, and the user may drag thefield and drop it in the ‘trash’ to remove the field from the userinterface.

After receiving an editing command from the user, the method 300implements the editing command at a block 312. If the editing command isan add command, then the particular field selected by the user from theavailable fields list is added to the user interface at the positionindicated by the user. The added field may not appear in the availablefields list anymore. If the editing command is a remove command, thenthe field selected by the user from the user interface is removed fromthe user interface. The removed field may appear in the available fieldslist, and does not appear in the user interface anymore.

FIG. 3B is a flow diagram of an example method 300 for configuring auser interface of an application by rearranging the fields of the userinterface. The method 300 continues at a block 314 and updates the userinterface based on the implemented editing command. For an add command,the user interface is updated by repositioning the other fields based onthe added field's position, so that the added field can be added to theuser interface at the desired position. For example, as shown in FIG. 5,the user adds Field 8 from list 506 by dragging and dropping Field 8according to arrow 508 above Field 7. FIG. 6 illustrates the updateduser interface. Field 608, labeled as Field 8, is added to the userinterface above field 610, labeled as Field 7. In this example, field610 is repositioned to make space for field 608. Even though field 610was repositioned below field 608, it is understood that field 610 may berepositioned anywhere else in the user interface.

In some embodiments, for a remove command, the user interface may beupdated by repositioning the other fields based on the removed fieldposition to maximize space in the user interface. In other embodiments,for a remove command, the other fields may not be repositioned and aredisplayed at their respective original positions. For example, as shownin FIG. 5, the user removes field 504, labeled as Field 1 by draggingfield 504 from the user interface and dropping it in list 506 accordingto arrow 510. FIG. 6 illustrates the updated user interface. In thisexample, Field 1 is removed from the user interface, and the otherfields are not repositioned to fill in the void created by removingField 1. In another example, field 604 and field 606 may be repositionedto fill the void created by removing Field 1. In another example, Field5 may be repositioned to fill the void created by removing Field 1. Thefunctionalities of block 314 may be performed at the same time as thefunctionalities of block 312.

After updating the user interface, the method 300 saves the updated userinterface at a block 316. A save button may be displayed as shown bybutton 512 in FIG. 5. The user can select the save button to save theupdated user interface. The user interface may be saved as associatedwith the user that is currently using the application. The applicationmay determine the user by checking the username or log-in informationassociated with the application. The user interface may also be saved asassociated with a template. The user may the option to save the updateduser interface as a template of their choice. For example, the user maywork with a business solution application, and may use the applicationto maintain customer information and to maintain order information. Inthis case, the user would like access to different information dependingon the task they are performing. The user can configure a user interfaceto have easy access to customer information, and save this updated userinterface as a template for customer information, and can configureanother user interface to have easy access to order information and savethis updated user interface as a template for order information.Depending on which information the user wants to work with, they canselect from the various templates he saved and access the updated userinterface. Thus, the user does not have to re-configure the fields.

The user interface may also be saved as being associated with a device.For example, the user may save the user interface as one that isassociated with a mobile phone versus a tablet device. The screens for amobile phone and a tablet device may have different dimensions;therefore, the user may want to configure the fields so that informationis displayed to fit the different screen dimensions. Depending on whichdevice the user is working on, the updated user interface for thatdevice may be automatically displayed. In other embodiments, the usermay select the updated user interface for that device.

The method 300 exits the personalization mode at block 318. Upon exitingthe personalization mode, the user interface may be in productive modeas shown by mode 602 in FIG. 6. The personalization mode is a mode wherethe user can configure and personalize the user interface. Theproductive mode is a mode where the user can use the user interface andthe application. The method 300 may save the updated user interface atblock 316 after exiting the personalization mode at block 318.

At a block 320, the method 300 displays data associated with the fieldsbased on the updated user interface. Each of the plurality of fields hasdata associated with it. The data associated with the field is displayedin the new position of the field. When the user moves the selectedfield, the database associated with the data for the field is notaffected. The data is not copied or moved to another database or datasource. Only the display of the field and the display of the data areaffected. When the data, associated with the field is updated by theuser or the application, the updated data is displayed in the userinterface at the new position of the field.

When the user accesses the application again, at a later time, themethod 300 retrieves the saved user interface at a block 322. Forexample, the user may personalize the user interface of the applicationon a mobile device, and then exit the application. The user then mayrecess the application at a later time. The method 200 retrieves thesaved user interface and displays that on the mobile device. The methodmay retrieve the saved user interface based on the user, a template or adevice. For example, the user interface saved as being associated withthe user may be retrieved based on the username used to log in to theapplication. If the user accesses the application on a mobile phone thenthe user interface associated with the mobile phone may be retrieved. Ifthe user accesses the application on a tablet then the user interfaceassociated with the tablet may be retrieved. If the user accesses theapplication and specifies a template, then the user interface associatedwith the template is retrieved.

In this manner, a mechanism, to configure user interfaces on atouch-sensitive screen for an application having multiple fields isprovided. One or more processors, cause display of a user interface foran application, where the application has a plurality of fields. A userselection of a field of the plurality of fields is detected, via atouch-sensitive device. The user selection of the field may be based ona configuration setting of the application. A personalization mode maybe activated in response to the detection of the user selection of thefield. The selected field may be highlighted. A user input indicating anew position of the selected field in the user interface is received,and other fields in the user interface affected by the new position ofthe selected field are identified. The other fields are repositionedbased on the new position of the selected field. The user interface maybe updated based on the repositioning of the other fields. The updateduser interface may be saved as being associated with the user, atemplate, or a user device. The saved user interface may be retrieved inresponse to the user selecting the application. The data associated withthe plurality of fields may be displayed based on the repositionedfields.

A user activation of a field editing operation associated with at leastone of the plurality of fields is detected. The plurality of fields hasa set of data associated with them. A personalization mode may beactivated in response to the detection of the user activation of thefield editing operation. An editing command from the user via atouch-sensitive screen is received. The editing command may include anadd command or a delete command. The user activation of the fieldediting operation may be based on a configuration setting of theapplication. The editing command is implemented with respect to the atleast one field, and the user interface is updated in response to theimplementation of the editing command. The updated user interface isdisplayed with the set of data associated with the plurality of fields.The updated user interface may be saved as being associated with theuser, a template, or a user device. The saved user interface may beretrieved in response to the user selecting the application.

The mechanism described herein provides a user-intuitive way ofpersonalizing the display of data of an application by allowing the userto configure application fields via a touch-sensitive screen. The usercan configure fields in the user interface to have easy access to datathat is important or desirable to the user. The user can also save theconfigured user interface so that the configured user interface isdisplayed when they access the application again. The user can savemultiple configured user interfaces with different names, devices, ortemplates, so that the user can easily use the various configured userinterfaces as needed.

FIG. 7 depicts a block diagram of a machine in the example form of aprocessing system 700 within which may be executed a set of instructionsfor causing the machine to perform any one or more of the methodologiesdiscussed herein. In alternative embodiments, the machine operates as astandalone device or may be connected (for example, networked) to othermachines. In a networked deployment, the machine may operate in thecapacity of a server or a client machine in a server-client networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment.

The machine is capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The example of the processing system 700 includes a processor 702 (forexample, a central processing unit (CPU), a graphics processing unit(GPU), or both), a main memory 704 (for example, random access memory),and static memory 706 (for example, static random-access memory), whichcommunicate with each other via bus 708. The processing system 700 mayfurther include video display unit 710 (for example, a plasma display, aliquid crystal display (LCD), or a cathode ray tube (CRT)). Theprocessing system 700 also includes an alphanumeric input device 712(for example, a keyboard), a user interface (UI) navigation device 714(for example, a mouse), a disk drive unit 716, a signal generationdevice 718 (for example, a speaker), and a network interface device 720.

The disk drive unit 716 (a type of non-volatile memory storage) includesa machine-readable medium 722 on which is stored one or more sets ofdata structures and instructions 724 (for example, software) embodyingor utilized by any one or more of the methodologies or functionsdescribed herein. The data structures and instructions 724 may alsoreside, completely or at least partially, within the main memory 704,the static memory 706, and/or within the processor 702 during executionthereof by processing system 700, with the main memory 704 and processor702 also constituting machine-readable, tangible media.

The data structures and instructions 724 may further be transmitted orreceived over a computer network 726 via network interface device 720utilizing any one of a number of well-known transfer protocols (forexample, Hypertext Transfer Protocol (HTTP)).

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (for example, code embodied on a machine-readablemedium or in a transmission signal) or hardware modules. A hardwaremodule is a tangible unit capable of performing certain operations andmay be configured or arranged in a certain manner. In exampleembodiments, one or more computer systems (for example, the processingsystem 700) or one or more hardware modules of a computer system (forexample, a processor 702 or a group of processors) may be configured bysoftware (for example, an application or application portion) as ahardware module that operates to perform certain operations as describedherein.

In various embodiments, a hardware module may be implementedmechanically or electronically. For example, a hardware module mayinclude dedicated circuitry or logic that is permanently configured (forexample, as a special-purpose processor, such as a field-programmablegate array (FPGA) or an application-specific integrated circuit (ASIC)),to perform certain operations. A hardware module may also includeprogrammable logic or circuitry (for example, as encompassed within ageneral-purpose processor 702 or other programmable processor) that istemporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (for example, configured by software)may be driven by cost and time considerations.

Accordingly, the term “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (for example, hardwired) ortemporarily configured (for example, programmed) to operate in a certainmanner and/or to perform certain operations described herein.Considering embodiments in which hardware modules are temporarilyconfigured (for example, programmed), each of the hardware modules neednot be configured or instantiated at any one instance in time. Forexample, where the hardware modules include a general-purpose processor702 that is configured using software, the general-purpose processor 702may be configured as respective different hardware modules at differenttimes. Software may accordingly configure a processor 702, for example,to constitute a particular hardware module at one instance of time andto constitute a different hardware module at a different instance oftime.

Modules can provide information to, and receive information from, othermodules. For example, the described modules may be regarded as beingcommunicatively coupled. Where multiples of such hardware modules existcontemporaneously, communications may be achieved through signaltransmissions (such as, for example, over appropriate circuits andbuses) that connect the modules. In embodiments in which multiplemodules are configured or instantiated at different times,communications between such modules may be achieved, for example,through the storage and retrieval of information in memory structures towhich the multiple modules have access. For example, one module mayperform an operation and store the output of that operation in a memorydevice to which it is communicatively coupled. A further module maythen, at a later time, access the memory device to retrieve and processthe stored output. Modules may also initiate communications with inputor output devices, and can operate on a resource (for example, acollection of information).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors 702 that aretemporarily configured (for example, by software) or permanentlyconfigured to perform the relevant operations. Whether temporarily orpermanently configured, such processors 702 may constituteprocessor-implemented modules that operate to perform one or moreoperations or functions. The modules referred to herein may, in someexample embodiments, include processor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or more processors 702 orprocessor-implemented modules. The performance of certain of theoperations may be distributed among the one or more processors 702, notonly residing within a single machine but deployed across a number ofmachines. In some example embodiments, the processors 702 may be locatedin a single location (for example, within a home environment, within anoffice environment, or as a server farm), while in other embodiments,the processors 702 may be distributed across a number of locations.

While the embodiments are described with reference to variousimplementations and exploitations. It is understood that theseembodiments are illustrative and that the scope of claims provided belowis not limited to the embodiments described herein. In general, thetechniques described herein may be implemented with facilitiesconsistent with any hardware system or hardware systems defined herein.Many variations, modifications, additions, and improvements arepossible.

Plural instances may be provided for components, operations, orstructures described herein as a single instance. Finally, boundariesbetween various components, operations, and data stores are somewhatarbitrary, and particular operations are illustrated in the context ofspecific illustrative configurations. Other allocations of functionalityare envisioned and may fall within the scope of the claims. In general,structures and functionality presented as separate components in theexemplary configurations may be implemented as a combined structure orcomponent. Similarly, structures and functionality presented as a singlecomponent may be implemented as separate components. These and othervariations, modifications, additions, and improvements fall within thescope of the claims and their equivalents.

What is claimed is:
 1. A computer-implemented method comprising: causingdisplay, using one or more processors, of a first user interface havinga plurality of fields for an application in a productive mode; detectinga user selection of a field from the first user interface via atouch-sensitive screen; activating, in response to detecting the userselected field from the first user interface, a second user interfacefor the application in a personalization mode to enable a user to modifyat least one of the plurality of fields displayed in the first userinterface, the second user interface comprising a selected fieldcorresponding to the user selected field from the first user interface,a first set of fields, and a second set of fields, the first set offields independently configurable to be associated with an activeportion of the second user interface and the second set of fieldsindependently configurable to be associated with an inactive portion ofthe second user interface; causing display, using one or moreprocessors, of the second user interface indicating that the selectedfield from the second user interface is associated the active portion ofthe second user interface or the inactive portion of the second userinterface; receiving a user input, via the touch-sensitive screen,indicating a new position of the selected field within the activeportion of the second user interface if the selected field from thesecond user interface is associated with the active portion of thesecond user interface; identifying other fields in the active portion ofthe second user interface affected by the new position of the selected;and repositioning the other fields within the active portion of thesecond user interface based on the new position of the selected field;and causing display, using one or more processors, of an updated firstuser interface for the application in the productive mode, the updatedfirst user interface includes modifications to the at least one of theplurality of fields in the first user interface made to the second userinterface during the personalization mode.
 2. The computer-implementedmethod of claim 1, further comprising highlighting the user selectedfield detected in the first user.
 3. The computer-implemented method ofclaim 1, further comprising saving the updated first user interface asbeing associated with the user.
 4. The computer-implemented method ofclaim 3, further comprising retrieving the updated first user interfacein response to the user selecting the application.
 5. Thecomputer-implemented method of claim 3, wherein the updated first userinterface is saved as being associated with a template.
 6. Thecomputer-implemented method of claim 3, wherein the updated first userinterface is saved as being associated with a user device.
 7. Thecomputer-implemented method of claim 1, further comprising allowing userselection of the field based on a configuration setting of theapplication.
 8. The computer-implemented method of claim 1, wherein thesecond user interface duplicates the same fields and position of thefields shown in the first user interface.
 9. A computer-implementedmethod comprising: causing display, using one or more processors, of afirst user interface having a plurality of fields for an application ina productive mode, the first user interface including an option toperform a field editing operation; detecting a user activation of theoption to perform the field editing operation via a touch-sensitivescreen in the first user interface; activating, in response to the useractivation of the option to perform the field editing operation in thefirst user interface, a second user interface having the plurality offields for the application in a personalization mode, the field editingoperation enabling the user to modify the plurality of fields shown inthe first user interface by editing commands to move, add, delete orreposition at least one field in the second user interface via atouch-sensitive screen; causing display, using one or more processors,of the second user interface with a display overlay associated with thefield editing operation, the display overlay displaying at least aportion of a list of available fields to add to the second userinterface; activating the field editing operation by receiving at leastone editing command from the user via the touch-sensitive screen;implementing the at least one editing command in the second userinterface to modify the at least one field in the second user interface;updating the first user interface to reflect the modifications made tothe at least one field made in the second user interface; and causingdisplay, using one or more processors, of the updated first userinterface.
 10. The computer-implemented method of claim 9, furthercomprising saving the updated first user interface as being associatedwith the user; and further comprising retrieving the updated first userinterface in response to the user selecting the application.
 11. Thecomputer-implemented method of claim 9, further comprising allowing theuser activation of the field editing operation based on a configurationsetting of the application.
 12. The computer-implemented method of claim9, wherein the display option overlay includes a scroll bar to viewadditional fields in the list of available fields.
 13. Thecomputer-implemented method of claim 9, wherein the editing commandperformed by the user includes dragging a field from the list ofavailable fields in the display overlay and dropping the field at adesired position on the second user interface.
 14. Thecomputer-implemented method of claim 13, further comprising updating thedisplay overlay to remove the dropped field to the list of availablefields.
 15. The computer-implemented method of claim 9, wherein theediting command performed by the user includes dragging a field from thesecond user interface and dropping the field in the list of availablefields within the display overlay.
 16. The computer-implemented methodof claim 15, further comprising updating the display overlay to add thedropped field from the list of available fields.
 17. An apparatuscomprising: a touch-sensitive screen configured to interact with a userof the apparatus; a memory configured to store data; and one or moreprocessors coupled to the memory, the one or more processors configuredto: cause display, using one or more processors, of a first userinterface having a plurality of fields for an application in aproductive mode, the productive mode enabling a user to use theapplication; detect a user selection entered via the touch-sensitivescreen, the user selection representing at least one of a field from thefirst user interface and an option to perform a field editing operation;activate, in response to detecting the user selection in the first userinterface, a second user interface for the application in apersonalization mode, the personalization mode enabling the user tomodify the plurality of fields shown in the first user interface byediting commands to move, add, delete or reposition at least one fieldin the second user interface via a touch-sensitive screen, the seconduser interface including at least the same fields displayed in the samelocation as the plurality of fields as the first user interface; causedisplay, using one or more processors, of the second user interface, thesecond user interface includes at least one of a display of an activatedportion of the second user interface associated with the user selectionof the field from the first user interface and a display overlay to viewa list of available fields for adding to the second user interfaceassociated with the user selection of the option to perform the fieldediting operation; receive at least one editing command to modify atleast one of the fields in the second user interface from the user onthe touch-sensitive screen; implement the at least one editing commandin the second user interface; update the first user interface to reflectthe modifications to the at least one field made in the second user; andcause display, using one or more processors, of the updated first userinterface.
 18. The apparatus of claim 17, wherein the one or moreprocessors is further configured to: detect, in the productive mode, theuser selection from a field of the plurality of fields, the userselection being on the touch-sensitive screen; receive, in thepersonalization mode, a user input indicating a new position of theselected field in the second user interface; identify, in thepersonalization mode, other fields in the second user interface affectedby the new position of the selected field; and reposition, in thepersonalization mode, the other fields in the second user interfacebased on the new position of the selected field.